#ifndef IMAGESTATUSMONITOR_H
#define IMAGESTATUSMONITOR_H

#include <QWidget>

#include "imageeditor.h"

namespace Ui {
class ImageStatusMonitor;
}

/*
    继承了 QWidget GUI类
    整体功能:
        作为图片页面的监视类，用于statusBar里面的GUI相关功能，通过槽函数接受ImageEditor
    相关信号。
        1、分辨率、文件大小
        2、图片大小还原、缩小、放大
        3、全屏
*/

class ImageStatusMonitor : public QWidget
{
    Q_OBJECT

public:
    explicit ImageStatusMonitor(ImageEditor* imageEditor, QWidget *parent = nullptr);
    ~ImageStatusMonitor();

protected:
    void Zoom(const double zoomFactor);

private slots:
    void ZoomRestore();
    void ZoomSmaller();
    void ZoomBigger();
    void FullScreen();
    void SliderZoomScaleChanged(const int value);
    void BoxZoomScaleChanged(const int index);

private:
    void Init();
    void ConnectAll();
    void UpdateSizeLabel();
    void UpdateResolutionLabel();

    Ui::ImageStatusMonitor *ui;
    ImageEditor* mImageEditor {nullptr};
    double mScale = 1;
};

#endif // IMAGESTATUSMONITOR_H
